package com.irdstudio.efp.esb.api.bean.sed.ploaninfo;

import com.alibaba.fastjson.annotation.JSONField;
import com.irdstudio.basic.framework.core.annotation.DicType;
import com.irdstudio.basic.framework.core.annotation.NumType;
import com.irdstudio.basic.framework.core.constant.DblStEnum;
import com.irdstudio.basic.framework.core.constant.SDicCertTypeEnum;
import com.irdstudio.basic.framework.core.constant.SDicChannelType;
import com.irdstudio.efp.esb.api.common.sed.PersonalLoanQryTypeEnum;
import com.irdstudio.efp.esb.api.common.sed.SedEnum;
import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.NotEmpty;

import javax.validation.constraints.NotNull;


/**
 * 需求编号：【】
 * 问题编号：【】
 * 开发人员：
 * 创建日期：
 * 功能描述：个人借据信息查询请求参数封装
 */
public class YedReqLoanInfoQuery {
    /**
     * 用信申请流水号
     */
    @JSONField(name = "UseCrdtAppSrlNo")
    @Length(max = 64)
    private String useCrdtAppSrlNo;
    /**
     * 授信协议编号
     */
    @JSONField(name = "CrAgrmtNo")
    @Length(max = 60)
    private String crAgrmtNo;
    /**
     * 客户号
     */
    @JSONField(name = "CustNo")
    @Length(max = 20)
    private String custNo;
    /**
     * 证件类型
     */
    @JSONField(name = "IdentTp")
    @DicType(dicType = SDicCertTypeEnum.class, method = "getValue")
    @Length(max = 32)
    private String identTp;
    /**
     * 证件号码
     */
    @JSONField(name = "IdentNo")
    @Length(max = 32)
    private String identNo;
    /**
     * 产品ID
     */
    @JSONField(name = "PdNo")
    @DicType(dicType= SedEnum.PrdCodeEnum.class,message="产品ID字典项校验错误",method="getValue")
    @Length(max = 8)
    private String pdNo;
    /**
     * 借据状态
     */
    @JSONField(name = "DbllSt")
    @Length(max = 3)
    @DicType(dicType = DblStEnum.class, method = "getValue")
    private String dbllSt;
    /**
     * 渠道号
     */
    @JSONField(name = "ChanNo")
    @Length(max = 3)
    @DicType(dicType = SDicChannelType.class,message = "非法的渠道编号",method = "getValue")
    private String chanNo;
    /**
     * 查询类型
     */
    @JSONField(name = "QryTp")
    @NotNull
    @NotEmpty
    @DicType(dicType = PersonalLoanQryTypeEnum.class, message = "查询类型只支持01、02、03、04、05、06、07、08、09、10", method = "getValue")
    @Length(max = 3)
    private String qryTp;
    /**
     * 页码
     */
    @NumType
    @Length(max = 9,message = "页码最大长度不能超过9位")
    @JSONField(name = "PgNo")
    private String pgNO;

    /**
     * 每页记录数
     */
    @NumType
    @Length(max = 9,message = "每页记录数最大长度不能超过9位")
    @JSONField(name = "PerPgDsplCnt")
    private String perPgDsplCnt;

    public String getUseCrdtAppSrlNo() {
        return useCrdtAppSrlNo;
    }

    public void setUseCrdtAppSrlNo(String useCrdtAppSrlNo) {
        this.useCrdtAppSrlNo = useCrdtAppSrlNo;
    }

    public String getCrAgrmtNo() {
        return crAgrmtNo;
    }

    public void setCrAgrmtNo(String crAgrmtNo) {
        this.crAgrmtNo = crAgrmtNo;
    }

    public String getCustNo() {
        return custNo;
    }

    public void setCustNo(String custNo) {
        this.custNo = custNo;
    }

    public String getIdentTp() {
        return identTp;
    }

    public void setIdentTp(String identTp) {
        this.identTp = identTp;
    }

    public String getIdentNo() {
        return identNo;
    }

    public void setIdentNo(String identNo) {
        this.identNo = identNo;
    }

    public String getPdNo() {
        return pdNo;
    }

    public void setPdNo(String pdNo) {
        this.pdNo = pdNo;
    }

    public String getDbllSt() {
        return dbllSt;
    }

    public void setDbllSt(String dbllSt) {
        this.dbllSt = dbllSt;
    }

    public String getChanNo() {
        return chanNo;
    }

    public void setChanNo(String chanNo) {
        this.chanNo = chanNo;
    }

    public String getQryTp() {
        return qryTp;
    }

    public void setQryTp(String qryTp) {
        this.qryTp = qryTp;
    }

    public String getPgNO() {
        return pgNO;
    }

    public void setPgNO(String pgNO) {
        this.pgNO = pgNO;
    }

    public String getPerPgDsplCnt() {
        return perPgDsplCnt;
    }

    public void setPerPgDsplCnt(String perPgDsplCnt) {
        this.perPgDsplCnt = perPgDsplCnt;
    }
}
